Automatic configuration of self-configurable environments

ABSTRACT

A user&#39;s portable electronic device can learn configuration preferences from a first environment, such as the user&#39;s car, and when the user visits another similar environment, such as a rented automobile, those configuration preferences can be imported into the visited environment and used to automatically configure the environment according to the imported preferences.

TECHNICAL FIELD

The present disclosure relates generally to self-configurableenvironments and more specifically to techniques and systems for storingconfiguration details on a portable consumer device and communicatingthose configuration details to a self configurable environment to enablethe self configurable environment to configure itself.

BACKGROUND

An example of a self-configurable environment that some consumers mightbe familiar with is an automobile in which a consumer can adjust a carseat, power mirrors, and steering wheel, and associate the configurationwith a button. In such automobiles two different drivers can eachassociate a particular configuration of the seat, mirrors, and steeringwheel with one of the buttons and when they enter the car, they canpress the button and the car will reconfigure itself according to theassociated configuration.

Such self-configurable environments are very convenient; however, theyare not readily transportable. Accordingly, the present technologysolves this problem.

SUMMARY

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out in the appended claims. These and otherfeatures of the disclosure will become more fully apparent from thefollowing description and appended claims, or can be learned by thepractice of the principles set forth herein.

The present technology makes it possible for users of portable consumerelectronic devices to bring environment configuration information withthem and communicate the environment configuration to visitedenvironments so that the visited environment can automatically configureitself to the user's preferences.

An example of such a configurable environment could be an automobile. Auser could allow their phone to learn configuration preferences from theuser's personal automobile, and when the user visits another automobile,such as when renting a car, or buying a new car, those configurationpreferences could be imported into the visited automobile and used toautomatically configure the automobile according to the importedpreferences. Such preferences could include seat orientation, radiopreferences (especially satellite radio), climate control preferences,and minor orientation preferences.

In some embodiments, an application running on a portable electronicdevice can include a user interface sufficient to receive an instructionfrom the user to request configuration information from a homeenvironment. As not all similar environments (i.e., one car to another)share the same dimensions or default configurations, the application caninclude a translation function, by which it could standardize receivedinformation, and translate the information according to the appropriateenvironment when transmitting the configuration information.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the disclosure can be obtained, a moreparticular description of the principles briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only exemplary embodiments of the disclosure and are nottherefore to be considered to be limiting of its scope, the principlesherein are described and explained with additional specificity anddetail through the use of the accompanying drawings in which:

FIG. 1 illustrates an exemplary system embodiment;

FIG. 2 illustrates an exemplary application of the present technology;

FIG. 3 illustrates distances and angles that can be measured torepresent the physical configuration of a passenger compartment of anexemplary configurable environment;

FIG. 4 illustrates an exemplary rear view of an exemplary configurableenvironment;

FIG. 5 illustrates an exemplary system embodiment;

FIG. 6 illustrates an exemplary system embodiment; and

FIG. 7 illustrates an exemplary method embodiment.

DETAILED DESCRIPTION

Various embodiments of the disclosure are discussed in detail below.While specific implementations are discussed, it should be understoodthat this is done for illustration purposes only. A person skilled inthe relevant art will recognize that other components and configurationsmay be used without parting from the spirit and scope of the disclosure.

The present disclosure describes a technology in which a collection ofconfiguration settings can be stored in a portable consumer device. Whenthe portable consumer device is in a configurable environment, theportable consumer device can communicate the stored collection ofconfiguration settings to the configurable environment, which can thenconfigure itself according to those configuration settings. An examplein which this technology might be relevant is if a consumer configuresan automobile to his preferences. If those preferences are stored in theconsumer's portable consumer device, then when the consumer entersanother car, such as a rental car, configured with the presenttechnology, that car can configure itself to the consumer's preferences.

A brief introductory description of a basic general purpose system orcomputing device, which can be employed to practice these concepts isillustrated in FIG. 1. A more detailed description of the presenttechnology will follow. Several variations shall be discussed herein asthe various embodiments are set forth. The disclosure now turns to FIG.1.

With reference to FIG. 1, an exemplary system 100 includes ageneral-purpose computing device 100, including a processing unit (CPUor processor) 120 and a system bus 110 that couples various systemcomponents including the system memory 130 such as read only memory(ROM) 140 and random access memory (RAM) 150 to the processor 120. Thesystem 100 can include a cache 122 of high speed memory connecteddirectly with, in close proximity to, or integrated as part of theprocessor 120. The system 100 copies data from the memory 130 and/or thestorage device 160 to the cache 122 for quick access by the processor120. In this way, the cache provides a performance boost that avoidsprocessor 120 delays while waiting for data. These and other modules cancontrol or be configured to control the processor 120 to perform variousactions. Other system memory 130 may be available for use as well. Thememory 130 can include multiple different types of memory with differentperformance characteristics. It can be appreciated that the disclosuremay operate on a computing device 100 with more than one processor 120or on a group or cluster of computing devices networked together toprovide greater processing capability. The processor 120 can include anygeneral purpose processor and a hardware module or software module, suchas module 1 162, module 2 164, and module 3 166 stored in storage device160, configured to control the processor 120 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. The processor 120 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

The system bus 110 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. A basicinput/output (BIOS) stored in ROM 140 or the like, may provide the basicroutine that helps to transfer information between elements within thecomputing device 100, such as during start-up. The computing device 100further includes storage devices 160 such as a hard disk drive, amagnetic disk drive, an optical disk drive, tape drive or the like. Thestorage device 160 can include software modules 162, 164, 166 forcontrolling the processor 120. Other hardware or software modules arecontemplated. The storage device 160 is connected to the system bus 110by a drive interface. The drives and the associated computer readablestorage media provide nonvolatile storage of computer readableinstructions, data structures, program modules and other data for thecomputing device 100. In one aspect, a hardware module that performs aparticular function includes the software component stored in anon-transitory computer-readable medium in connection with the necessaryhardware components, such as the processor 120, bus 110, display 170,and so forth, to carry out the function. The basic components are knownto those of skill in the art and appropriate variations are contemplateddepending on the type of device, such as whether the device 100 is asmall, handheld computing device, a desktop computer, or a computerserver.

Although the exemplary embodiment described herein employs the hard disk160, it should be appreciated by those skilled in the art that othertypes of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, digital versatile disks, cartridges, random access memories(RAMs) 150, read only memory (ROM) 140, a cable or wireless signalcontaining a bit stream and the like, may also be used in the exemplaryoperating environment. Non-transitory computer-readable storage mediaexpressly exclude media such as energy, carrier signals, electromagneticwaves, and signals per se.

To enable user interaction with the computing device 100, an inputdevice 190 represents any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 170 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems enable a user to provide multiple types of input to communicatewith the computing device 100. The communications interface 180generally governs and manages the user input and system output. There isno restriction on operating on any particular hardware arrangement andtherefore the basic features here may easily be substituted for improvedhardware or firmware arrangements as they are developed.

For clarity of explanation, the illustrative system embodiment ispresented as including individual functional blocks including functionalblocks labeled as a “processor” or processor 120. The functions theseblocks represent may be provided through the use of either shared ordedicated hardware, including, but not limited to, hardware capable ofexecuting software and hardware, such as a processor 120, that ispurpose-built to operate as an equivalent to software executing on ageneral purpose processor. For example the functions of one or moreprocessors presented in FIG. 1 may be provided by a single sharedprocessor or multiple processors. (Use of the term “processor” shouldnot be construed to refer exclusively to hardware capable of executingsoftware.) Illustrative embodiments may include microprocessor and/ordigital signal processor (DSP) hardware, read-only memory (ROM) 140 forstoring software performing the operations discussed below, and randomaccess memory (RAM) 150 for storing results. Very large scaleintegration (VLSI) hardware embodiments, as well as custom VLSIcircuitry in combination with a general purpose DSP circuit, may also beprovided.

The logical operations of the various embodiments are implemented as:(1) a sequence of computer implemented steps, operations, or proceduresrunning on a programmable circuit within a general use computer, (2) asequence of computer implemented steps, operations, or proceduresrunning on a specific-use programmable circuit; and/or (3)interconnected machine modules or program engines within theprogrammable circuits. The system 100 shown in FIG. 1 can practice allor part of the recited methods, can be a part of the recited systems,and/or can operate according to instructions in the recitednon-transitory computer-readable storage media. Such logical operationscan be implemented as modules configured to control the processor 120 toperform particular functions according to the programming of the module.For example, FIG. 1 illustrates three modules Mod1 162, Mod2 164 andMod3 166 which are modules configured to control the processor 120.These modules may be stored on the storage device 160 and loaded intoRAM 150 or memory 130 at runtime or may be stored as would be known inthe art in other computer-readable memory locations.

Having disclosed some components of a computing system, the disclosurenow returns to a discussion of the present technology for the automaticconfiguration of self-configurable environments.

FIG. 2 illustrates an exemplary application of the present technology.Specifically, FIG. 2 illustrates a side view of a passenger compartment200 of an automobile. As illustrated, the passenger compartment 200includes an adjustable steering wheel 201, and adjustable seat 203. Byway of non-limiting example, the seat 203 is adjustable up and down 202,backward and forward 204, and increasing and decreasing an angle ofrecline 206. The steering wheel 201 is adjustable to move closer to andfarther from 208 a driver. While not shown, other aspects of thepassenger experience can also be adjustable, such as mirrors, lumbarsupport, air conditioning temperature, radio preferences, etc.

Based on the configuration of the adjustable components discussed above,FIG. 3 illustrates distances and angles that can be measured torepresent the physical configuration of the passenger compartment. Thesedistances and angles can be determined by environment-translationsoftware that would be aware of the dimensions of the passengercompartment, and that would use these dimensions along with informationregarding the adjustments made to the passenger compartment. In someembodiments, this environment-translation software could be part of theautomobile, and such software would report standard statistics to aportable consumer device (i.e., the measurements illustrated in FIG. 3).While in some embodiments the environment-translation software would beresident on a portable consumer device and the automobile would reportthe adjustments made to the passenger compartment, and the portableconsumer device could translate these measurements from one automobileto another.

The distances and angles illustrated in FIG. 3 can be consideredstandard measurements that can be translated to any other automobileenvironment. In some embodiments the distances are determined byutilizing a value known to the environment-translation softwarediscussed above.

Distance 302 represents the distance from the floor board to thepassenger's knee. Distance 302 can be determined by theenvironment-translation software when the software is aware that the topof the driver's seat is by default 12 inches above the floor board, andthe passenger has adjusted the seat upwards one inch. Thus theenvironment-translation software would learn from the automobile thatthe distance 302 is 13 inches.

Also relevant to the orientation of the driver's knees is the theirangle of bend 304. Angle 304 can be determined by theenvironment-translation software when the software is aware of thedefault incline of the seat, and the default distance from the edge ofthe driver's seat (just below the knees) to the operational pedals (gas,brake, etc.). The software can also learn of any adjustment to the angleof the seat, or distance to the operational pedals. Based on thisinformation the software can calculate the angle of knee bend, or lookup the approximate angle in a chart as is well-known in the geometryarts.

Angle 306 represents the angle of a driver's recline. The default angleof the bottom portion of the chair relative to the backrest portion ofthe chair can be known by the environment-translation software, and anyadjustments from the default can be accounted to result at Angle 306.

Distance 308 represents the distance from the driver's shoulders to thesteering wheel. This distance can be determined by theenvironment-translation software when the software is aware that thedriver's seat is by default 16 inches from the steering wheel, and canfurther account for changes in the seat's relative position (forward orbackward adjustments), angle of incline in the seat (the greater theadjustment to the backrest portion of the driver's seat that results ina more reclined driving position, the farther the driver's shoulderswill be from the steering wheel), and adjustments to the telescopingsteering wheel (forward or backward adjustments).

In some embodiments an infrared camera and skeletal tracking softwarecan be used to determine the positions of the various body regionsdiscussed above.

FIG. 3 also illustrates mirror adjustment angles 310 and 312. In someembodiments, these angles can be reported directly from the mirrorsthemselves, if they are power mirrors or can otherwise senseadjustments. In embodiments wherein the mirror is not a power minor orlacks the necessary sensors, these angles can be calculated byapproximating where a user's head is expected to be based on itsexpected position relative to the known position of the headrest. Againthe environment-translation software can be aware of the defaultposition of the headrest and adjust for movement of the seat. In someembodiments, it might be possible for the software to learn ofadjustments to the headrest itself. In some embodiments, a camera, suchas an infrared camera can be used to actually determine the location ofthe driver's head itself. Once the location of the driver's head isknown or approximated, the environment-translation software cancalculated the angle of adjustment from the known mirror location and apredetermined target vantage point.

FIG. 4 illustrates a view from the rear of an automobile, which showsthe back of a driver's head and its relationship to the rear view minor402, driver's side mirror 404, and passenger's side mirror 406.

Mirrors need to be adjusted left and right as well as up and down. Insome embodiments the mirrors can provide all of the relevant angles tothe environment-translation software as introduced above. In someembodiments, the location of a driver's head can be approximated, orlearned (as addressed above) and an angle of adjustment can becalculated based on the known mirror locations, the location of thedriver's head, and a predetermined target vantage point.

By determining the standard measurements and angles corresponding to auser's configuration preference for one automobile, theenvironment-translation software can translate those measurements toother automobiles including automobiles of different makes and models.As long as the software has knowledge of the default configuration of anautomobile, the standard measurements can be converted and applied toanother automobile.

Likewise the environment-translation software can also learn of otherpreferences that can be exported from one automobile to anotherincluding climate control preferences, radio preferences, etc.

FIG. 5 illustrates an exemplary system embodiment showing twoautomobiles, Automobile 1 502 and Automobile 2 552, and a portableelectronic device 520. Consistent with the descriptions herein, portableelectronic device 520 can be used to learn configuration settingsapplied to one automobile, such as Automobile 1 502, and can use thoseconfiguration settings to allow another automobile, such as Automobile 2552, to configure itself according to those configuration settings.

In the embodiment illustrated in FIG. 5 each automobile 502 and 552includes environment-translation software 504 554. Theenvironment-translation software 504 554 can be configured tocommunicate with the various configurable components including but notlimited to power mirrors 510 560, power seats 512 562, radio 514 564,climate control 516 566 to learn the configuration settings of theconfigurable components.

As may be appreciated the configuration settings of the variouscomponents can be relevant to the specific make and model of theautomobile from which they were measured or otherwise collected. In suchembodiments, the environment-translation software 504 can translate theautomobile specific configuration settings into standard measurements.These standard measurements can be communicated using the communicationmodule 506 556 to the portable electronic device 520 thoughcommunication module 524 for storage within an environmental settingsdatabase 526. In some embodiments the environmental settings database526 can be part of an environment-configuration application 522.

Once the standard configurations are stored in the environmentalsettings database 526, a user can take the portable electronic deviceinto any other car configured with the present technology, and transmitthe configuration settings into the other car, which can automaticallyconfigure itself according to the settings. For example, using theenvironment-configuration application 522 a user can command the deviceto initiate a connection with the automobile via its communicationmodule 524, and transmit the standard measurements to the automobile 502552 via its communication module 506 556. The communication module 506556 can pass the settings onto the environment-translation software 504554 which can convert the standard configuration settings intoconfiguration settings specific for the automobile 502 552. Theenvironment-translation software 504 554 is further configured toinstruct one or more components to configure themselves according tomeasurements provided by the environment-translation software 504 554.

FIG. 6 illustrates another exemplary system embodiment, which issomewhat similar to the system embodiment of FIG. 5. The main differencebetween the two systems it that the environment-translation software 624is part of the environment-configuration application 622 on the portableelectronic device 620. In this embodiment the automobiles 602 652 stillinclude software 604 654 to collect measurements and data from powermirrors 610 660, power seats 612 662, radio 614 664, climate control 616666, etc. However, the automobile 602 652 does not perform a translationof the collected data and measurements into standard data; that functionis performed on the portable electronic device 620.

When a user enters another automobile and would like that automobile toconfigure itself according to the user's preferences, theenvironment-configuration application 622 utilizes theenvironment-translation software 624 to convert the standardizedmeasurements into measurements that correspond to the automobile to beconfigured.

In some embodiments wherein the environment-translation software 624 ison the portable electronic device 620 it will be appreciated that thesoftware will need to include information on each car it may be used toconfigure or receive configurations from. In some embodiments, thesoftware 624 will include a database of such information. In someembodiments, the software 624 can download configuration settings asrequired.

In order for the software 624 to know which automobile to translate ameasure to or from, it can learn of the make and model of theautomobile. This can be accomplished from a menu in a user interface, orthe environment-configuration application 622 can be configured toautomatically learn the make and model information from the automobiledirectly.

While up to this point the present technology has largely been describedin the context of automobiles, it should be appreciated that the presenttechnology is equally applicable to many other environments. For examplea hotel room might be another example wherein the present technologycould be used to configure climate control settings, and television andlighting preferences. Further, it should be appreciate that in someenvironments translation of measurements or data might not be needed.

FIG. 7 illustrates a flow chart presenting an exemplary methodembodiment. A user can use an application on a portable electronicdevice to request environment settings 702 from a selected environment,Environment 1. Environment 1 can determine the requested environmentalsettings 704, and if needed the settings can be normalized into standardmeasurements 706 either on the portable electronic device or byEnvironment 1. The standard measurements can be stored on the portableelectronic device 708. Later, when the user enters a new but similarenvironment, Environment 2, the user can direct the portable electronicdevice to inform Environment 2 that it should configure itself. Againthe standardized measurements can be converted 710 into Environment 2settings either by the portable device or Environment 2, and Environment2 can implement the settings 712.

As addressed above, in some embodiments it is necessary to convertmeasurements taken from one environment into measurements suitable foranother similar environment. While such conversion can be performed asdiscussed above, it can be anticipated that in some embodiments theconversions require a slight adjustment. In such embodiments thetechnology discussed herein can update its data with the adjustments theuser makes in a different environment. Each environment can be thoughtof as a different context to evaluate the user's preferences.

In some embodiments the application on the portable electronic devicecan report that such modifications were made to a central repository. Ifmany users are making similar adjustments in similar environments itcould be an indication that the environment-translation software mightrequire updating or refinement based on aggregated user data.

Embodiments within the scope of the present disclosure may also includetangible and/or non-transitory computer-readable storage media forcarrying or having computer-executable instructions or data structuresstored thereon. Such non-transitory computer-readable storage media canbe any available media that can be accessed by a general purpose orspecial purpose computer, including the functional design of any specialpurpose processor as discussed above. By way of example, and notlimitation, such non-transitory computer-readable media can include RAM,ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storageor other magnetic storage devices, or any other medium which can be usedto carry or store desired program code means in the form ofcomputer-executable instructions, data structures, or processor chipdesign. When information is transferred or provided over a network oranother communications connection (either hardwired, wireless, orcombination thereof) to a computer, the computer properly views theconnection as a computer-readable medium. Thus, any such connection isproperly termed a computer-readable medium. Combinations of the aboveshould also be included within the scope of the computer-readable media.

Computer-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Computer-executable instructions also includeprogram modules that are executed by computers in stand-alone or networkenvironments. Generally, program modules include routines, programs,components, data structures, objects, and the functions inherent in thedesign of special-purpose processors, etc. that perform particular tasksor implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Those of skill in the art will appreciate that other embodiments of thedisclosure may be practiced in network computing environments with manytypes of computer system configurations, including personal computers,hand-held devices, multi-processor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, and the like. Embodiments may also be practiced indistributed computing environments where tasks are performed by localand remote processing devices that are linked (either by hardwiredlinks, wireless links, or by a combination thereof) through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

The various embodiments described above are provided by way ofillustration only and should not be construed to limit the scope of thedisclosure. For example, the principles herein can be applied othertypes of files to control the secure deletion of those files and othercopies of those files from storage. Those skilled in the art willreadily recognize various modifications and changes that may be made tothe principles described herein without following the exampleembodiments and applications illustrated and described herein, andwithout departing from the spirit and scope of the disclosure.

We claim:
 1. A system comprising: a configurable component of aconfigurable environment; a configuration module of the configurableenvironment, the configuration module of the configurable environmentbeing configured to receive a configuration variable, and instruct theconfigurable component of the configurable environment to configureitself according to the configuration variable; and a configurationapplication of a portable consumer electronic device, the configurationapplication being configured to send a configuration variable to theconfiguration module of the configurable environment to initiateconfiguration of the configurable environment.
 2. The system of claim 1further comprising: an environment-translation module configured totranslate a standard configuration variable into a configurationvariable specific to the configurable environment.
 3. The system ofclaim 1 further comprising: an environment-translation module configuredto translate a configuration variable specific to the configurableenvironment into a standard configuration variable.
 4. The system ofclaim 1, wherein the configuration application includes a databaseconfigured to store the configuration variable.
 5. The system of claim1, wherein the configuration application includes an environmenttranslation module configured to translate the configuration variablebetween a variable specific to the configurable environment and astandard variable that is not specific to any configurable environment.6. A method executed on a portable electronic device comprising: storinga configuration variable on the portable electronic device; sending theconfiguration variable to a configurable environment; and instructingthe configurable environment to configure itself according to theconfiguration variable.
 7. The method of claim 6 further comprising:receiving by a configuration application running on the portableelectronic device an identification of the configurable environment. 8.The method of claim 7 further comprising: translating the configurationvariable into a device specific configuration variable associated withthe identified configurable environment.
 9. The method of claim 6further comprising: receiving the configuration variable from a firstconfigurable environment before storing the configuration variable onthe portable electronic device.
 10. The method of claim 7, wherein asubset of a plurality of configuration variables do not requiretranslation.
 11. A non-transitory computer readable medium storingcomputer-readable instructions thereon, effective for causing a computerto execute the computer-readable instructions comprising: receiving aconfiguration variable from a first configurable environment; storingthe configuration variable in a portable electronic device; sending theconfiguration variable to a second configurable environment; andinstructing the second configurable environment to configure itselfaccording to the configuration variable.
 12. The non-transitory computerreadable medium of claim 11 further comprising: receiving by aconfiguration application running on the portable electronic device anidentification of the second configurable environment.
 13. Thenon-transitory computer readable medium of claim 12 further comprising:translating the configuration variable into a environment specificconfiguration variable associated with the identified secondconfigurable environment.
 14. The non-transitory computer readablemedium of claim 12, wherein a subset of a plurality of configurationvariables do not require translation.